<template>
	<view class="find-activity">
		<view class="find-activity-filter u-flex">
			<view class="find-activity-filter-item" @click="openCalendar()">
				全部时间<image src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/filter-icon.png" mode=""></image>
			</view>
			<view class="find-activity-filter-item" @click="distanceShow = true">
				不限距离<image src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/filter-icon.png" mode=""></image>
			</view>
		</view>
		<view class="find-activity-list">
			<find-activityitem v-for="(item,index) in trendsList" :key="index" :item="item"></find-activityitem>
			<view class="nodata">
				<image src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/nodata.png" mode="widthFix"></image>
				<text class="nodata-title" style="margin-top: 32rpx;">暂时还没有活动</text>
				<text class="nodata-subtitle">空空如也</text>
			</view>
		</view>
		<!-- 时间 -->
		<view class="calendarDate">
			<!-- <liu-calendar-date ref="calendar" @checked='getDate'></liu-calendar-date> -->
			<u-picker mode="time" v-model="showStartTime" :params="timeSetting" @confirm="clickStartTime()"></u-picker>
		</view>
		<!-- 距离 -->
		<u-picker mode="selector" v-model="distanceShow" :range="distanceList" range-key="name" :defaultIndex="[0]"
			@confirm="confirm">
		</u-picker>
	</view>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
import findActivityitem from '../find-activityitem/find-activityitem.vue'
export default {
	// 组件名称
	name: 'demo',
	// 组件参数 接收来自父组件的数据
	props: {},
	// 局部注册的组件,import引入的组件需要注入到对象中才能使用
	components: {
		findActivityitem
	},
	// 组件状态值
	data() {
		return {
			timeShow: false,
			timeList: [],
			distanceShow: false,
			distanceList: [
				{
					name: '1km',
					id: 1
				},
				{
					name: '2km',
					id: 2
				},
				{
					name: '3km',
					id: 3
				},
				{
					name: '4km',
					id: 4
				},
			],
			time: '',
			distance: '',
			trendsList: [],
			page: 1,
			showStartTime: false,
			timeSetting: {
				year: true,
				month: true,
				day: true,
				// hour: true,
				// minute: true,
			},
		}
	},
	// 计算属性
	computed: {},
	// 侦听器
	watch: {},
	// 组件方法
	methods: {
		// 获取列表
		getList() {
			let item = {
				type: 8,
				page: this.page,
				latitude: this.location.lat,
				longitude: this.location.lng,
				distance: this.distance, // 距离
				time: this.time // 时间
			}
			// if (index == 0) {
			// 	item.province = this.province
			// 	item.city = this.city
			// }
			this.$http('find.trendsList', item, '').then(res => {
				if (this.page == 1) this.trendsList = []
				this.trendsList = this.trendsList.concat(res.data.data || [])
			});
		},
		// 回调参数为包含columnIndex、value、values
		confirm(e) {
			console.log('confirm', e)
			// this.show = false
		},
		//打开选择器
		openCalendar() {
			// this.$refs.calendar.open()
			this.showStartTime = true
		},
		//单个日期选择成功
		// getDate(e) {
		// 	this.checkDay = e.value
		// },
		// 选择时间	
		clickStartTime(e) {
			this.time = e.year + '/' + e.month + '/' + e.day
		},
		//获取当前位置
		getLocation() {
			let location = {
				lat: 0,
				lng: 0,
			}
			// console.log(location, 'location')
			let that = this
			uni.getLocation({
				success(res) {
					// console.log(res, 'res')
					location.lat = res.latitude
					location.lng = res.longitude
					// console.log(res.latitude, res.longitude, 'res.latitude,res.longituderes.latitude,res.longitude')
					// 根据经纬度获取城市
					uni.request({
						url: 'https://apis.map.qq.com/ws/geocoder/v1/',
						data: {
							location: `${res.latitude},${res.longitude}`,
							key: 'LNKBZ-7K2K4-FBTUF-F4EDL-DL3CH-T4FDB'
						},
						success(res) {
							// console.log(res, 'res', 'https://apis.map.qq.com/ws/geocoder/v1/')
							// that.city = res.data.result.ad_info.city
							// that.province = res.data.result.ad_info.province
							that.getList()
						}
					})
					that.location = location
				},
				fail(err) {
					console.log(err, 'err')
					that.location = location
					// that.getList()
					if (err.errMsg === 'getLocation:fail 频繁调用会增加电量损耗，可考虑使用 wx.onLocationChange 监听地理位置变化') {
						uni.showToast({
							title: '请勿频繁定位',
							icon: 'none'
						})
					}
					if (err.errMsg === 'getLocation:fail auth deny') {
						// 未授权
						uni.showToast({
							title: '无法定位，请重新获取位置信息',
							icon: 'none'
						})
						authDenyCb && authDenyCb()
						self.isLocated = false
					}
					if (err.errMsg === 'getLocation:fail:ERROR_NOCELL&WIFI_LOCATIONSWITCHOFF') {
						uni.showModal({
							content: '请开启手机定位服务',
							showCancel: false
						})
					}
				}
			})
		},
	},
	// 以下是生命周期钩子   注：没用到的钩子请自行删除
	/**
	 * 在实例初始化之后，组件属性计算之前，如data属性等
	 */
	beforeCreate() { },
	/**
	 * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
	 */
	created() {
		this.getLocation()
	},
	onPullDownRefresh() {
		this.page = 1
		this.getList()
	},
	onReachBottom() {
		this.page += 1
		this.getList()
	},
	/**
	 * 在挂载开始之前被调用：相关的 render 函数首次被调用。
	 */
	beforeMount() { },
	/**
	 * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
	 * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
	 */
	mounted() { },
	/**
	 * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
	 * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
	 */
	beforeUpdate() { },
	/**
	 * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
	 * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
	 */
	updated() { },
	/**
	 * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
	 */
	activated() { },
	/**
	 * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
	 */
	deactivated() { },
	/**
	 * 实例销毁之前调用。在这一步，实例仍然完全可用。
	 */
	beforeDestroy() { },
	/**
	 * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
	 * 所有的事件监听器会被移除，所有的子实例也会被销毁。
	 */
	destroyed() { }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped属性之后，父组件的style样式将不会渗透到子组件中，-->
<!--然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响，-->
<style scoped lang="scss">
.find-activity {
	height: 100%;
	width: 100%;

	&-filter {
		margin-top: 20rpx;

		&-item {
			margin-bottom: 40rpx;
			font-size: 28rpx;
			font-family: PingFang SC-Medium, PingFang SC;
			font-weight: 400;
			color: #2E3033;
			text-align: center;
			margin-right: 60rpx;
			display: flex;
			align-items: center;

			image {
				margin-left: 8rpx;
				width: 20rpx;
				height: 20rpx;
			}
		}
	}

	&-list {
		height: calc(100% - 80rpx);
		overflow-y: auto;
	}
}
.calendarDate{
	position: fixed;
	width: 100%;
	left: 0;
	bottom: 0;
}
</style>
